home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
tag_bbs
/
msgfd21b.zip
/
MSGFIND.DOC
< prev
next >
Wrap
Text File
|
1992-02-16
|
29KB
|
712 lines
MSGFIND
TAG Message Wait Utility
For TAG FIDO Style
Message Areas
-*Current Public BETA V2.01*-
╓───────────────────────────────────────────────────────────────────╖
║ Apparent Author : Rick Cooper (or one of his other personalities) ║
║ Inspired By : Some Guys On The TAG Echo ║
║ Music By : Lawrence Welk (Doing Crack) ║
║ Produced By : SiMpLe MiNdS SoFtWaRe ║
║ Key Grip : Donn Bly (Don't tell him) ║
║ Stunts By : "Apollo" (Steve Metz) ║
║ Mental Anguish : Steve Stuart <g> ║
║ "How Abouts" By : Ed Kwasniewski (thank God!) ║
╙───────────────────────────────────────────────────────────────────╜
Most Of All:
Thanks To The TAG Team For Creating The BBS System
To Use This Under.. And For Providing The Structures
Utility Authors Need.. and Help When It's Necessary!
* First The Obligatory Denial Of Responsibility
Under No circumstance Shall The Author be held responsible for
anything this program Does, or does not do... This Includes, but
is not limited to:
Nuclear War
Famine
Plagues
Pimples
Disk Destruction
Pregnancy
Re orientation Of Your Sexual Preferences
Destruction Of Data
Water Leaks in your convertible Mustang
The only guarantee associated with this program is it will take
up some disk space.
This is a Public BETA version and as such may have a couple critters hidden
within it's bowels so don't bitch just let me know and I'll try and fix
it A.S.A.P. (I wouldn't worry since Steve and Ed Have Done a good Job)
Peter Yao has tested the program under DesqView and found it runs just
fine.. Thanks Peter..
Bear in mind I use an interrupt driven communications system and do not, at
present use the FOSSIL.. the communications routines will support up to
115K baud as is. The program uses the comport "as is" so should Be no
problems with communications.
This program is released, as is, into the public domain but the program
source is and shall be the sole property of the author, Rick Cooper, and
Simple Minds Software.. There can be NO fee associated with the
distribution of this program and companion files.
I also feel compelled to note the program size is a bit larger that it
needs to be at this time but I currently have a larger error handler
than will not be necessary once the general release has come out.
This is a public -*BETA*- release an therefore may have a bug Or two the
regular beta testers may have not experienced.. But the bugs are free.
Ok now on to the Docs.. Such as they Are.
- Registration Fees
╓────────────────────────────────────────────────────────╖
║ To register MSGFIND please send $1,000,000.00 ║
║ to the address at the end of this document.. ║
║ ║
║ If you can't/won't send $1,000,000.00 then just use it ║
║ for free, ya tightwad! |-) ║
╙────────────────────────────────────────────────────────╜
- Purpose
MsgFind is a program designed to allow users to check message bases for
any message addressed to them. It will work with FIDO (*.MSG) style
AND The Hudson (QBBS/RA) Style messages at this time. The program runs
pretty fast, considering the format of FIDO style messages.
MSGFIND also supports:
Security Level
A/R Flags
Board Toggles
This means that If the user Doesn't access the message base within TAG
they won't scan it here either.. And their board selection toggles are
also respected.
MSGFIND also prompts the user for any special strings they would like to
search the message subjects for.. this takes little or no extra time and
can be encouraged. If a message is encountered that contains the
specified string it is flagged for the user regardless of who the message
is actually addressed to. All Anonymous Message Authors appear as
From : <=-Anonymous-=>
To : Rick Cooper
Subject : Quiet!
MSGFIND will also ask the user if they wish to include messages
addressed to all.. If so any message that contains the String "ALL" will
be included in their message waiting display.
╒══════════════════════════════════════════════════════════════════════════╕
│ MSGFIND now checks for the existence of the file MSGFIND.HLP and, if it │
│ exists, will display the file to the user before doing anything. This │
│ file can be ANSI and only one file is needed for ANSI and NON ANSI │
│ users.. If the user doesn't have ANSI enabled MSGFIND will strip the │
│ ANSI codes and Transmit the file in Straight ASCII.. You can even watch │
│ the process while it's being transmitted. The file is totally optional │
│ and a demo file is included in this archive. │
╘══════════════════════════════════════════════════════════════════════════╛
The basic algorithm checks the user's lastread pointers, SL, and Board
Toggles, If they have the message base toggled on, and the correct S/L,
and A/R Flags, then the message base is scanned. If there are any new messages
it then checks the new messages for any message addressed to the user
and , if found, tells the user they have X message(s) waiting in that area
then flags that/those message(s) and displays the author, subject,
message number and section to the user. The user can break out of the Scan
And/Or Message Waiting Display by pressing the space bar at any time except
the pause prompt.. If you have defined your own pause prompt in the
MSTRMSG.TXT file then MSGFIND will use yours otherwise it uses an internal
default. (Mine)
If a user has not maintained their lastread pointers properly it will,
of course take a while.. But those that have will find the program's
performance to be quite acceptable.
*NOTE* If MSGFIND discovers that the highwater pointer in the FIDO
format 1.MSG is not consistent with the actual Highest message number it
will update 1.MSG with the correct highwater information, thus speeding
up the searches following the correction of the error.
- Requirements
MSGFIND Needs Only A Small .Cfg File With The Following Format:
C:\BBS\GFILES\ Path To USER.LST File
C:\BBS\GFILES\ Path To MBOARDS.DAT File
C:\BBS\AFILES\ Path To MSTR???.TXT File
The Trailing "\" is optional and One Will Be Appended If You Forget.
MsgFind should be placed in your main BBS directory to simplify setup.
All other information comes from the user.lst, mboards.dat, and various
lastread and toggle files.
╒═════════════════════════════════════════════════╕
│ Please Note: │
│ If you have an error reported check the │
│ file MSGFIND.ERR and examine the contents │
│ closely.. Also you may want to check your │
│ HUDSON style message bases for the existance │
│ of a file called MSGFIND.IDX.. if it exists │
│ PLEASE DELETE it! it will cause problems if │
│ it exists the first time through a particular │
│ Hudson (RA/QBBS) style message directory. │
│ │
│ Also please netmail me a copy of the error log │
│ or post it in the TAG/TAGDOORS echo area(s) │
╘═════════════════════════════════════════════════╛
- Calling conventions
The command line for MSGFIND is as follows:
┌────────────────────────────────────────────┐
│ MsgFind %1 %2 %3 %4 %5 %6 %7 [Type] │
└────────────────────────────────────────────┘
Type refers to the type of message base (Don't include brackets)
Local Local Messages
Echo Echo Messages
Group Group Mail Messages
ALL All the above Types
ASK Will Prompt the User for the Type Of Message
base(s) they would like scanned.
Combinations ARE accepted so:
LocalGroup Or LocalGroupEcho
are valid methods of calling.. The "ASK" parameter
CANNOT be combined.
As you can figure the program is called as a generic Door call.
The Batch files to call MsgFind are included and appear as:
ScanLoc.Bat
@echo off
MsgFind %1 %2 %3 %4 %5 %6 %7 Local
ScanEcho.Bat
@echo Off
MsgFind %1 %2 %3 %4 %5 %6 %7 Echo
ScanALL.Bat
@echo Off
MsgFind %1 %2 %3 %4 %5 %6 %7 All
ScanGrp.Bat
@echo Off
MsgFind %1 %2 %3 %4 %5 %6 %7 Group
AskScan.Bat
@Echo Off
MsgFind %1 %2 %3 %4 %5 %6 %7 Ask
***** If No parameters are used MsgFind Defaults To ASK***
I really think echo and local scans should be separate Or The ASK
parameter should be used as many users may well not use the echo areas and
it would simply be a headache for them to sit through any echo scan at all.
To configure TAG to use this you must create a linked menu command series
thusly:
────────────────────────────────────────────────────────────────────────────
The command structure for the call to MSGFIND is quite simple. Notice
that the call is a GENERIC door call and there is NO NEED for a "@" to
preface the echo mail checks as MSGFIND checks all messages against the
user's User Name *And* Real Name regardless of the message base type
(this is to allow for those local echos that allow handles)
────────────────────────────────────────────────────────────────────────────
Menu name : ]-=(Welcome To Echo Mail J!)=-[ #23
Command number : 16
1. Long desc. : [//CHECK] ALL Areas For Personal Messages
2. Short desc. : [//CHECK] ALL
3. Key : CHECK
4. General SL : 100
5. AR flag : @
6. Program key : <
7. Program data : "SCANECHO.BAT"
F. Flags : SL access check, GSL and AR, Normal Command, No Linking
Commands on this menu: 29
Command Edit: (1-7,F,[,],B,J,Q,T,?):
This is the simplest example to use.. I have a linked menu loggon scan
shown later on but this command could be on any message type menu
anywhere.
To accommodate the local messages you simply have to change the Pdata
-*NOTE*- Since the program defaults to ASK The User For The type you can
simply Use "MSGFIND.EXE" as your PData if you wish
Menu name : ]-=(Welcome To LOCAL Mail J!)=-[ #23
Command number : 16
1. Long desc. : [//CHECK] ALL Areas For Personal Messages
2. Short desc. : [//CHECK] ALL
3. Key : CHECK
4. General SL : 100
5. AR flag : @
6. Program key : <
7. Program data : "SCANLOC.BAT"
F. Flags : SL access check, GSL and AR, Normal Command, No Linking
Commands on this menu: 29
Command Edit: (1-7,F,[,],B,J,Q,T,?):
The example showing the logon menu usage will not call a batch file
since the only parameter not passed by TAG is the Echo/Local/Group
parameters and Since it's the log on function I let the users choose the
areas to scan.
If the user has any messages available they will be presented with a
message file that appears like:
======================================================================
Mail Waiting.... ]-=(Fort Wayne Chatter.)=-[ Message Area
Highest Message read = 0 High Area Message = 132
-*Message #16*-
From : Mark Taylor
To : Rick Cooper
Subject : Quiet!
Date : 509 Jan 92 20:35:39
======================================================================
Of course there are color codes for esthetics but I removed them here for
clarity.
As the scan is in process the see each area being listed (in color if
ansi enabled) and notified if messages addressed to them are found.. The
screen appears as (color removed of course) and then the messages found
in that area are displayed to the user at that time.
══════════════════════════════════════════════════════════════════════════
Searching ]-=(BBS Net Mail Areas.)=-[ L/R > 000
Searching ]-=(Net 236 BBS Adds...)=-[ L/R > 050
Searching ]-=(Pascal Programming.)=-[ L/R > 050
Searching ]-=(Batch File Question)=-[ L/R > 001
Searching ]-=(D'Bridge Support...)=-[ L/R > 000
Searching ]-=(Fort Wayne Chatter.)=-[ L/R > 042
Searching ]-=(DesqView Support...)=-[ L/R > 000
Searching ]-=(Quick Basic Program)=-[ L/R > 000
Searching ]-=(Windows Support....)=-[ L/R > 006
Searching ]-=(Binkley Support....)=-[ L/R > 000
Searching ]-=(Nat Hard Drive Sale)=-[ L/R > 000
2 New Message(s) To You Were Found!
════════════════════════════════════════════════════════════════════════════
Obviously The areas listed will depend upon your area names and how you
have listed the area name within the message base setup.. These
descriptions are taken directly from the MBOARDS.DAT File.
Notice the L/R > XXX.. This is the user's lastread pointer in the given
areas. Oh.. and the color interpretation is based on my own Boards Color
setup so don't be surprised if the colors appear somewhat different. If
there appears to be a call for it.. I will allow you to define the
colors 0-9 as you please.. But I would rather not have it appear as each
user has configured it as it can be a bit difficult to read with some of
the odd user color combinations..
- Hints
I personally have created a logon menu that asks the user if they would
like to check for messages addressed to them during logon and it then
chains to the main menu. It is set up as follows
─────────────────────────────────────────────────────────────────────────────
Notice I have disabled the prompt and am using the board name instead..
this is so I can personalize the prompt with the "^UJ" User Name SDR
code. Also notice I have defaulted the help level to 4.. since this is only a
pass through, prompt type menu the user Need Not see the actual commands...
Menu list number: 29
1. Menu number : 30
2. Menu name : Check Message Bases For Messages TO You ^UJ? [Y/n]:
3. Prompt :
4. General SL : 10
5. AR flag : @
6. Help file ID : ""
7. Password : ""
8. Fallback menu : 1
9. Start help lvl: 4
L. Menu location : Main System
F. Flags : SL access check, GSL and AR, Time/Help OFF
Board NORMAL, Menu name PROMPT
Commands on this menu: 5
Menu Edit: (1-9,C,L,F,Q,?):
─────────────────────────────────────────────────────────────────────────────
Also notice the default response command.. It defaults to NO if the user
presses Enter or Space bar
─────────────────────────────────────────────────────────────────────────────
Cmd# Short Desc. Cmd# Short Desc. Cmd# Short Desc.
───- ──────────────- ───- ──────────────- ───- ──────────────-
1 [Y]es 3 [N]o 4 [D]efault
2 [M]ain
Commands: (D,I,M,P,Q,?):
─────────────────────────────────────────────────────────────────────────────
If answer is yes call MSGFIND without batch file since we are only
checking local messages. Since MsgFind Defaults To Ask This Allows the
User to decide which (or all) Types To Scan.
─────────────────────────────────────────────────────────────────────────────
Menu name : Check Message Bases For Messages TO You J? [Y/n]: #30
Command number : 1
1. Long desc. : [Y]es
2. Short desc. : [Y]es
3. Key : Y
4. General SL : 10
5. AR flag : @
6. Program key : <
7. Program data : "MSGFIND.EXE"
F. Flags : SL access check, GSL and AR, Hidden Command, Linked To Next
Commands on this menu: 4
Command Edit: (1-7,F,[,],B,J,Q,T,?):
Menu name : Check Message Bases For Messages TO You J? [Y/n]: #30
Command number : 2
1. Long desc. : [M]ain
2. Short desc. : [M]ain
3. Key :
4. General SL : 10
5. AR flag : @
6. Program key : ^
7. Program data : "C1"
F. Flags : SL access check, GSL and AR, Hidden Command, No Linking
Commands on this menu: 4
Command Edit: (1-7,F,[,],B,J,Q,T,?):
Menu name : Check Message Bases For Messages TO You J? [Y/n]: #30
Command number : 3
1. Long desc. : [N]o
2. Short desc. : [N]o
3. Key : N
4. General SL : 10
5. AR flag : @
6. Program key : ^
7. Program data : "C1"
F. Flags : SL access check, GSL and AR, Hidden Command, No Linking
Commands on this menu: 4
Command Edit: (1-7,F,[,],B,J,Q,T,?):
Menu name : Check Message Bases For Messages TO You J? [Y/n]: #30
Command number : 4
1. Long desc. : [D]efault
2. Short desc. : [D]efault
3. Key : <CR>
4. General SL : 10
5. AR flag : @
6. Program key : ^
7. Program data : "C1"
F. Flags : SL access check, GSL and AR, Hidden Command, No Linking
Commands on this menu: 4
Command Edit: (1-7,F,[,],B,J,Q,T,?):
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
In addition to this menu I added a command to check the Echo message
areas to the main menu and the Echo Mail Message Board (Two separate
areas with two separate menus)
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
-01/16/92
Found and Fixed a minor display Bug.. Wouldn't display search process
line by line.. Looked bad.. Real Bad!
-01/19/92
Added Support For The Hudson (QBBS/RA) Style Message Bases.. Still A
waiting the LASTREAD.BBS Structures. Once I get the structures I will
also support groups within the command line as well as Area
Flags, And Board Toggles. At this Time this is not supported.
I have added S/L checking so you can use that to specify what boards a
user should see during the scan.. If anyone can give me information on
the proper bit masking of the area flags I will be happy to include that
test within the program as well.
(Hey TELL PAUL To Get Me The QBBS LASTREAD.BBS Structures!)
Also MSGFIND now checks every new message against both the USERNAME and
the REALNAME of the current user.. This eliminates the need to call the
echo mail searches with the "@" modifier before the batch file name in
your Pdata.
-01/21/92
No longer requires TAG to display text file (NEWMSG.MSG) thus
eliminating the need for all the command linking. The routines allow for
the user to break out of the message displays by pressing Escape.
Also squashed what appears to be the last display bug.. Was in a lower
level library I had written some time ago for TAGSAFE.. heh.. must be a
little bug in TAGSAFE since it doesn't bother it's display at all.
Well.. have some net mail waiting from Victor Capton.. Who knows this
might mean board toggles in effect before the weekend
-01/21/92
Now Supports The Hudson Style LastRead Pointers
Thanks Victor,
Fixed a problem where if the user less than 20 lines of information on a
message waiting screen the screen was cleared before the user could read
it. Also fixed a small bug that sometimes screwed up the properizing of
the user name.
-01/27/92
Fixed input past end of file bug caused when checking for the "Pause"
string in the MSTRMSG.TXT file and the sysop hasn't defined one.
Oops!
Ok.. I have added an error handler that will list about everything I or
you will need to track down any odd errors (hopefully).
It generates a file called MSGFIND.ERR in it's home directory, which
*should* be your main BBS Directory.. Looks Like:
============================================================================
An Error Has Generated an Error Code Of 74 Please Check Below
============================================================================
User Name...............Rick Cooper
Real Name...............Rick Cooper
User Number.............1
Baud Rate...............0
ComPort.................1
User Security Level.....255
User Download Security..255
ANSI Status Is..........1
============================================================================
Path Information
============================================================================
Path To User.Lst........C:\BBS\USER.LST -*Is Valid*-
Path To MBoards.Dat.....C:\BBS\MBOARDS.DAT -*Is Valid*-
Path To MSTRDEF.TXT.....C:\BBS\ALTFILES\MSTRDEF.TXT Is INVALID!
Path To MSTRMSG.TXT.....C:\BBS\ALTFILES\MSTRMSG.TXT -*Is Valid*-
Current Message Dir.....C:\BBS\MESSAGES\QBASE\
Current Message Area....]-=(General BBS Chatter)=-[
Current AREA Number..... 41
Current lastRead File...C:\BBS\MESSAGES\QBASE\LASTREAD.BBS -*Is Valid*-
Program Position........ 15
============================================================================
Screen Capture.. Check Last Section/Activity On Screen
============================================================================
Searching ]-=(General BBS Chatter...)=-[ L/R > 050
Searching ]-=(Dead Poets Society....)=-[ L/R > 050
Searching ]-=(File Requests/Reviews.)=-[ L/R > 050
Searching ]-=(IBM Related Discussion)=-[ L/R > 044
Searching ]-=(ANSI Magic/BBS Adds...)=-[ L/R > 050
Searching ]-=(Anything For Sale Here)=-[ L/R > 050
Searching ]-=(QuickBasic Programmers)=-[ L/R > 135
HopeFully I have included everything we would need to debug errors...
-02/01/92
Added the new "TYPE" parameters "Group/ASK/ALL" and support for
combinations of the three types "Group, Echo, Local".
Also added :
Ability to abort scan with space bar
Carrier Checking while in input loops
Prompting for Scan TYPE When TYPE = ASK
prompting for Subjects strings to check Subjects for
Will not go to work on the speed increases and the honoring of area
flags and board toggles.
-02/01/92
Oh will it ever end!?
Fixed bug where authors of anonymous messages had their names
displayed.. Now simply shows "<=-Anonymous-=>" in the From field
Also changed the messages waiting cycle to display the messages waiting
for the user immediately following the area scan rather than waiting
until the whole scan has completed.. this breaks up the scan a bit and
gives the appearance of greater speed.
-02/02/92
Found a bug with the Hudson format.. Could get the message numbers and
lastread pointers screwed up. Also added :
MsgFind Will Now Update the Highwater Marker
in 1.MSG (FIDO Format) IF it is found to hold
an incorrect Highwater mark. This will cause the
following scans to be quite a bit faster for users
who have lastread pointers current
Now shows the Highest message in the message information
display for all formats
-02/03/92
Added the optional help file MSGFIND.HLP.. this file can be ANSI if
desired (demo is) and only one type need be available as any ANSI will
be removed before transmitting to the user (you can actually watch the
color being removed and the file transmitted). This file should not
exceed one screen page as I don't bother to keep track and it will
scroll without pausing.. and it should be a SHORT help file anyway.
Also now query the user as to if they would like to include messages
addressed to ALL.. Good Idea Ed.
Fixed the bug I caused by fixing the bug I found While Fixing the Bug I
caused While Fixing the Hudson format numbering.. In Other words I made
an algebraic OOpps!
Sped up the Fido format searches a ton by removing the sort function I
no longer needed since two revisions ago.. Hmmm Are We Getting Tired?
Corrected the spelling of Ed Kwasniewski's Name.. Ooops again!
Went To Bed!
-02/09/92
Well I finally added support for the TAG Board Toggles.. This Has Been
Long in coming and I apologize for the wait. Been real busy and all I
have left is the Hudson speed up and AR flag support.
Next update will include one or both of the above and will also include
support for an optional color definition file so you can define, via TAG
color codes, how you wish the screens to appear.. They will then appear
the same as on your BBS.
Ok I lied.. I decided to go ahead and finish the A/R flag development
this afternoon.. It's done.. It works.. Geeeezzz.. These Cross language
conversions can be a real pain! the language I am using doesn't support
Sets, Byte data types, Real number data types, or typed arrays of any
kind! and these Data Types proliferate the TAG data structures...
Especially in the various "Flags" sets. Also Added User Color Support..
What ever the user has configured their TAG colors to that is how the
various colors will be displayed.. Just Like your Own Setup Appears.
I absolutely will NOT add the speed up algorithms for the Hudson bases,
nor work on the code size, until next week!
-02/10/92
Ok.. I didn't ACTUALLY Lie this time.. I worked on the Overall speed of
the program.. really increased the speed of FIDO searches, especially if
there were no messages found. Also changed the display format of Hudson
message bases.. the search shows the Hudson LastRead but the message
waiting displays the actual TAG lastread, Message Number, and HighWater
marker. The speed increase in areas with up to date lastreads is quite
remarkable indeed... Now off to speed up the Hudson Search!
-02/11/92
Added the speed up algorithm for the Hudson format bases.. Now only
reads each different Directory's MSGHDR.BBS File one time and creates
it's own temporary indexes as it performs it's initial search. The
resulting Index allows MsgFind to access only those records which
pertain to the current user search criteria. If there are no new
messages for the user then the program skips the bases that contain no
new messages.. Really adds speed to the total search (first time through
each Hudson directory is about the same)
-02/16/92
Fixed an integer over run problem with user numbers over about 200
MsgFind now appends the error log rather than deleting upon startup
Changed default answer for the "include addressed to all" query to No
══════════════════════════════════════════════════════════════════════════
-Coming Attractions
Peter Yao has suggested I enable an event type function to allow the
sysop to specify specific users to have their messages packed into a
file for download at a later date.. This option interests me and If
there are enough SysOps interested in it I would be happy to implement
it in the next incarnation of the software... Please Let me Know!
(Heck I might even look into having it pack 'em in a QWK format.. who
knows)
─────────────────────────────────────────────────────────────────────────────
─────────────────────────────────────────────────────────────────────────────
Hopefully I have explained the program in a clear enough manner that
your setup will be easy and fast.. If you do have any problems you can
contact me via the TAG Echo, TAG Doors Echo, Or NetMail at:
Rick Cooper
Just For The Heck Of It II
FIDO Net 1:236/16
Phone (219)747-5871